package Main;
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import Monomials.MonomInteger;
public class GUI extends JFrame {
private static final long serialVersionUID = 1L;
private JFrame frame;
private JButton addPolynomial1;
private JButton addPolynomial2;
private JTextPane Polynomial1;
private JTextPane Polynomial2;
private JTextPane rez;
private JTextPane rez1;
private JMenuBar menu;
private JTextField addcoefficient;
private JTextField adddegree;
private JLabel coefficient;
private JLabel degree;
private JLabel result;
private JLabel rest;
private JLabel content;
private JButton derivation;
private JButton integration;
private JButton sum;
private JButton subtraction;
private JButton multiplication;
private JButton division;
private Polynomial polynomial1;
private Polynomial polynomial2;
public GUI() {
polynomial1 = new Polynomial();
polynomial2 = new Polynomial();
frame = new JFrame("Polynomial Processing");
frame.setBounds(200, 30, 550, 520);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
frame.getContentPane().setBackground(Color.LIGHT_GRAY);
menu = new JMenuBar();
frame.setJMenuBar(menu);
JMenu file = new JMenu("File");
menu.add(file);
JMenuItem eMenuItem = new JMenuItem("Exit");
eMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
file.add(eMenuItem);
addPolynomial1 = new JButton("Polynomial 1");
addPolynomial1.setBounds(30, 120, 130, 25);
frame.getContentPane().add(addPolynomial1);
addPolynomial2 = new JButton("Polynomial 2");
addPolynomial2.setBounds(30, 150, 130, 25);
frame.getContentPane().add(addPolynomial2);
derivation = new JButton("Derivation");
derivation.setBounds(50, 230, 100, 25);
frame.getContentPane().add(derivation);
integration = new JButton("Integration");
integration.setBounds(50, 260, 100, 25);
frame.getContentPane().add(integration);
sum = new JButton("Addition");
sum.setBounds(50, 290, 100, 25);
frame.getContentPane().add(sum);
subtraction = new JButton("Subtraction");
subtraction.setBounds(180, 230, 100, 25);
frame.getContentPane().add(subtraction);
multiplication = new JButton("Multiplication");
multiplication.setBounds(180, 260, 110, 25);
frame.getContentPane().add(multiplication);
division = new JButton("Division");
division.setBounds(180, 290, 100, 25);
frame.getContentPane().add(division);
addcoefficient = new JTextField(30);
addcoefficient.setBounds(130, 20, 40, 30);
frame.getContentPane().add(addcoefficient);
adddegree = new JTextField(30);
adddegree.setBounds(130, 50, 40, 30);
frame.getContentPane().add(adddegree);
Polynomial1 = new JTextPane();
Polynomial1.setBounds(170, 120, 200, 25);
Polynomial1.setOpaque(true);
Polynomial1.setEditable(false);
frame.getContentPane().add(Polynomial1);
Polynomial2 = new JTextPane();
Polynomial2.setBounds(170, 150, 200, 25);
Polynomial2.setOpaque(true);
Polynomial2.setEditable(false);
frame.getContentPane().add(Polynomial2);
rez = new JTextPane();
rez.setBounds(170, 330, 330, 25);
rez.setOpaque(true);
rez.setEditable(false);
frame.getContentPane().add(rez);
rez1 = new JTextPane();
rez1.setBounds(170, 360, 330, 25);
rez1.setOpaque(true);
rez1.setEditable(false);
frame.getContentPane().add(rez1);
coefficient = new JLabel();
coefficient.setText("Coefficient:");
coefficient.setBounds(40, 20, 80, 20);
frame.getContentPane().add(coefficient);
content = new JLabel();
content.setText("For derivation and integration you must use the first polynomial!");
content.setForeground(Color.BLACK);
content.setBounds(55, 390, 1000, 40);
frame.getContentPane().add(content);
content = new JLabel();
content.setText("Lorand Berekmeri");
content.setForeground(Color.BLACK);
content.setBounds(360, 20, 1000, 40);
frame.getContentPane().add(content);
content = new JLabel();
content.setText("Group: 30425");
content.setForeground(Color.BLACK);
content.setBounds(360, 50, 1000, 40);
frame.getContentPane().add(content);
result = new JLabel();
result.setText("Result:");
result.setBounds(55, 330, 250, 20);
frame.getContentPane().add(result);
rest = new JLabel();
rest.setText("The rest of division:");
rest.setBounds(55, 360, 250, 20);
frame.getContentPane().add(rest);
degree = new JLabel();
degree.setText("Degree:");
degree.setBounds(40, 60, 60, 20);
frame.getContentPane().add(degree);
addPolynomial1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addPolynomial1) {
int coefficient = Integer.parseInt(addcoefficient.getText());
int degree = Integer.parseInt(adddegree.getText());
MonomInteger mon = new MonomInteger(coefficient, degree);
polynomial1.polynomial.add(mon);
Collections.sort(polynomial1.polynomial);
Polynomial1.setText(polynomial1.toStringPolynomial());
addcoefficient.setText("");
adddegree.setText("");
}
}
});
addPolynomial2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addPolynomial2) {
int coefficient = Integer.parseInt(addcoefficient.getText());
int degree = Integer.parseInt(adddegree.getText());
MonomInteger mon = new MonomInteger(coefficient, degree);
polynomial2.polynomial.add(mon);
Collections.sort(polynomial2.polynomial);
Polynomial2.setText(polynomial2.toStringPolynomial());
addcoefficient.setText("");
adddegree.setText("");
}
}
});
derivation.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == derivation) {
if (!Polynomial1.getText().isEmpty()) {
Polynomial PolynomialDerivat = new Polynomial();
PolynomialDerivat = polynomial1.getDerivataPolynomial();
Collections.sort(PolynomialDerivat.polynomial);
rez.setText(PolynomialDerivat.toStringPolynomial());
} else
JOptionPane.showMessageDialog(null, "Introduceti Polynomialul");
}
}
});
integration.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == integration) {
if (!Polynomial1.getText().isEmpty()) {
Polynomial PolynomialIntegrat = new Polynomial();
PolynomialIntegrat = polynomial1.getIntegralaPolynomial();
Collections.sort(PolynomialIntegrat.polynomial);
rez.setText(PolynomialIntegrat.toStringPolynomial());
} else
JOptionPane.showMessageDialog(null, "Introduceti Polynomialul");
}
}
});
sum.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == sum) {
if (!Polynomial1.getText().isEmpty()) {
Polynomial sumpolynomialoame = new Polynomial();
sumpolynomialoame = polynomial1.Addition(polynomial2);
Collections.sort(sumpolynomialoame.polynomial);
rez.setText(sumpolynomialoame.toStringPolynomial());
} else
JOptionPane.showMessageDialog(null, "Please enter the polynomials!");
}
}
});
subtraction.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == subtraction) {
if (!Polynomial1.getText().isEmpty()) {
Polynomial diferentapolynomialoame = new Polynomial();
diferentapolynomialoame = polynomial1.Subtraction(polynomial2);
rez.setText(diferentapolynomialoame.toStringPolynomial());
} else
JOptionPane.showMessageDialog(null, "Please enter the polynomials!");
}
}
});
multiplication.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == multiplication) {
if (!Polynomial1.getText().isEmpty()) {
Polynomial multiplicationpolynomialoame = new Polynomial();
multiplicationpolynomialoame = polynomial1.Multiplication(polynomial2);
Collections.sort(multiplicationpolynomialoame.polynomial);
rez.setText(multiplicationpolynomialoame.toStringPolynomial());
} else
JOptionPane.showMessageDialog(null, "Please enter the polynomials!");
}
}
});
division.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == division) {
if (!Polynomial1.getText().isEmpty()) {
Polynomial[] divisionpolynomialoame = new Polynomial[2];
divisionpolynomialoame = polynomial1.Division(polynomial2);
Collections.sort(divisionpolynomialoame[0].polynomial);
Collections.sort(divisionpolynomialoame[1].polynomial);
rez1.setText(divisionpolynomialoame[1].toStringPolynomial());
rez.setText(divisionpolynomialoame[0].toStringPolynomial());
} else
JOptionPane.showMessageDialog(null, "Please enter the polynomials!");
}
}
});
frame.setVisible(true);
}
public static void main(String[] args) {
GUI i = new GUI();
}
}